package top.infopub.mgr.util;

import org.apache.commons.lang3.StringUtils;
import top.infopub.enums.mkt.ProjectFileTypeEnum;
import top.infopub.model.mkt.ProjectAttachment;
import top.infopub.security.util.SessionUserUtils;
import top.infopub.security.vo.AuthorizationVO;
import top.infopub.util.IdFactory;

/**
 * @description: 附件封装类 ： 所有上传附件工具方法统一封装
 *               最后存储位置 MKT_PROJECT_ATTACHMENT
 * @author: xieyong
 * @date: 2021/6/17 9:03
 * @since: 1.0
 */
public class FileAttrUtils {
    /**
     * @Description: 附件封装
     * @Author: xieyong
     * @Date: 2021/6/17 9:04
     * @param vo: 主要是登录用户参数-用户id
     * @param proCode:  项目唯一编码
     * @param file:  文件
     * @return: top.infopub.model.mkt.ProjectAttachment
     **/
    public static ProjectAttachment createProjectFileAtta(String proCode, String file) {
        //资料信息数组
        String[] fileAttStr = file.split("\\|");
        ProjectAttachment fileAtt = new ProjectAttachment();
        if(StringUtils.isNotEmpty(fileAttStr[2])){
            fileAtt.setId(fileAttStr[2]);
        }else{
            fileAtt.setId(IdFactory.getUUIDUpper());
        }
        ProjectFileTypeEnum pft = ProjectFileTypeEnum.getBySubCode(fileAttStr[0]);
        fileAtt.setTypes(pft.getCode());
        fileAtt.setSubTypes(pft.getSubCode());
//        fileAtt.setTypes(fileAttStr[0].substring(0, 1));//附件子分类：1=项目可研报告 2=两评一案 9=其他资料（选填）
        fileAtt.setProCode(proCode);//项目id
        //1|顺德锦荣-营业执照副本-202007|1f712de906d64893b6d5444998b7edad|/static/preProjectAtt/20210128/34d1c48297e2479abd0f563d823e0756.pdf
        //1|顺德锦荣-营业执照副本-202007.pdf|a626d86827ff4759bee96f27df0d1cc6|/static/preProjectAtt/20210128/ac970f7badd9493caf408e624ae4ce69.pdf
        String fileName = fileAttStr[1].substring(0, fileAttStr[1].lastIndexOf("."));
        String suffix = fileAttStr[1].substring(fileAttStr[1].lastIndexOf("."),
                fileAttStr[1].length()).toLowerCase();//后缀转小写
        fileAtt.setFileName(fileName);//文件名
        fileAtt.setFileSuffix(suffix);//文件后缀
        fileAtt.setFilePath(fileAttStr[3]);//文件保存路径
        fileAtt.setAddBy(SessionUserUtils.getSessionUserId());//添加人
        fileAtt.setAddTime(DateUtils.getCurrentDateTime());//添加时间
        return fileAtt;
    }
}
